/* 
 TJJ_SD_BLE_INSTRUCTIONS.h
 神灯BLE指令内库
 1、连接下位机。
 2、发送指令ae0101aa------如果成功会返回以aaee08开头，以aa结尾的字符指令串。
 3、发送指令ae0902*****aa,“*”号部分，是第2条返回的信息的中间部分。如果成功，返回aaee0106aa。失败返回aaee07aa.
 4、在成功的情况下：发送指令：ae083015120903151219aa，获取下位机的时间状态。
*/

#import <Foundation/Foundation.h>

//发送指令区
#define SD_SEND_NOKEYJOINT @"ae0101aa" //连接指令1
#define SD_SEND_KEYJOINT_PREFIX @"ae0902"//连接指令2前缀

#define SD_SEND_SLEEPSTART @"ae0103aa" //开启睡眠模式
#define SD_SEND_SLEEPEND @"ae0104aa" //结束睡眠模式
#define SD_SEND_HEART_START @"ae0105aa"//开始接收实时检测心电脑电数据指令
#define SD_SEND_HEART_END @"ae0106aa"//结束接收实时检测心电脑电数据指令

#define SD_SEND_AUTOSTART_PREFIXONE @"ae0440" //开启智能唤醒模式1 前缀
#define SD_SEND_AUTOSTART_PREFIXTWO @"ae0341" //开启智能唤醒模式2 前缀
#define SD_SEND_AUTOEND_ONE @"ae0142aa" //关闭智能唤醒模式1
#define SD_SEND_AUTOEND_TWO @"ae0143aa" //关闭智能唤醒模式2

#define SD_SEND_DREAMSTART @"ae0113aa" //开启梦境控制
#define SD_SEND_DREAMEND @"ae0114aa" //关闭梦境控制

#define SD_SEND_IMPROVESTART @"ae0115aa" //开启改善睡眠功能
#define SD_SEND_IMPROVEEND @"ae0116aa" //关闭改善睡眠功能

#define SD_SEND_POWER @"ae0124aa" //电量请求
#define SD_SEND_STATE @"ae0125aa" //状态请求

#define SD_SEND_REMOVE_BINDINGONE @"ae0126aa" //解除绑定（下位机不作处理，一般）
#define SD_SEND_REMOVE_BINDING @"ae0151aa" //下位机解除绑定

#define SD_SEND_SETTIME_PREFIX @"ae0830" //设置时间的前缀

#define SD_SEND_UPDATE_HARDWARE @"ae0150aa" //更新固件版本
#define SD_SEND_FLIGHTMODE @"ae0152aa" //进入飞行模式

#define SD_SEND_READER_SERIALNUMBER @"ae0153aa" //查询序列号（NO KEY）
#define SD_SEND_READER_VERSION @"ae0154aa" //查询软件版本 （NO KEY）
#define SD_SEND_READER_BLEVERSION @"ae0155aa" //查询蓝牙适配器版本 （NO KEY）



//指令返回区
#define SD_FEEDBACK_NOKEYJOINT_PREFIX @"aaee08" //无key连接指令 返回aaee08开头的字符串
#define SD_FEEDBACK_KEYJOINT_SUCCESS @"aaee0106aa"//连接成功返回数据包包含这块头部
#define SD_FEEDBACK_KEYJOINT_FAILURE @"aaee0107aa"//连接失败返回数据包包含这块头部

#define SD_FEEDBACK_AUTOSTART_ONE_SUCCESS @"aaee0156aa" //开启智能唤醒1 成功返回
#define SD_FEEDBACK_AUTOEND_ONE_SUCCESS @"aaee0157aa" //关闭智能唤醒1 成功返回
#define SD_FEEDBACK_AUTOSTART_TWO_SUCCESS @"aaee0158aa" //开启智能唤醒2 成功返回
#define SD_FEEDBACK_AUTOEND_TWO_SUCCESS @"aaee0159aa" //关闭智能唤醒2 成功返回

#define SD_FEEDBACK_SLEEPSTART_SUCCESS @"aaee0130aa" //开启睡眠模式  成功返回
#define SD_FEEDBACK_SLEEPEND_SUCCESS @"aaee0131aa" //关闭睡眠模式  成功返回

#define SD_FEEDBACK_DREAMSTART_SUCCESS @"aaee010aaa" //开启梦境控制 成功返回
#define SD_FEEDBACK_DREAMEND_SUCCESS @"aaee010baa" //关闭梦境控制 成功返回

#define SD_FEEDBACK_IMPROVESTART_SUCCESS @"aaee010caa" //开启改善睡眠功能 成功返回
#define SD_FEEDBACK_IMPROVEEND_SUCCESS @"aaee010daa" //关闭改善睡眠功能 成功返回

#define SD_FEEDBACK_SETTIME_SUCCESS @"aaee010eaa" //设置时间 成功返回（时间同步）

#define SD_FEEDBACK_POWER_STATE @"aaee0141aa" //充电状态
#define SD_FEEDBACK_POWER_COMPLETED @"aaee0142aa" //充电完成
#define SD_FEEDBACK_POWER_FOUR @"aaee0125aa" //满格电量
#define SD_FEEDBACK_POWER_THREE @"aaee0124aa" //三格电量
#define SD_FEEDBACK_POWER_TWO @"aaee0123aa" //二格电量
#define SD_FEEDBACK_POWER_ONE @"aaee0122aa" //一格电量
#define SD_FEEDBACK_POWER_ZERO @"aaee0121aa" //警告电量

#define SD_FEEDBACK_FLIGHTMODE_SUCCESS @"aaee0143aa" //进入飞行模式 成功返回

#define SD_FEEDBACK_READER_SERIALNUMBER_PREFIX @"aabb08" //查询序列号返回的前缀
#define SD_FEEDBACK_READER_VERSION_MID @"VER" //查询软件版本 返回的字符串中包含这个字符串

#define LENGTH_SCORE 360 //之前是480，240分钟，也就是4个小时才有睡眠得分，现在换成3个小时（360）。
#define LENGTH_SLEEPSTATE 600 //睡眠5个小时以后才像是

@interface TJJ_SD_BLE_INSTRUCTIONS : NSObject

/*
 发送String指令转换成NSData类型
 */
+(NSData *)writeString:(NSString *)string;

/*
 读取硬件版本信息指令
 */
+ (void)readHardInfo;

/*
 读取蓝牙适配器版本信息指令
 */
+ (void)readBLEHardInfo;

/*
 读取硬件序列号信息指令
 */
+ (void)readSerialNumber;

/*
 解除绑定
 需要调用的几种情况：1、设置中，解绑操作(key)；2、用户绑定之后，用户登录重新打开应用或者后台进入应用出现 token失效的情况。(nokey)3、固件升级成功之后的情况。(nokey)  4、用户请求数据过程中出现的token失效，跳转到登录界面的（key）
 */
+ (void)unBind:(NSString *)string;
@end
